import request from '@/utils/request'

/**
 * 分页获取员工列表
 * @param {object} query 查询参数
 */
export const getEmpListAPI = (query) => {
  return request({
    method: 'get',
    url: '/sys/user',
    params: query
  })
}

/**
 * 获取员工列表blob数据
 */
export const getEmpBlobListAPI = () => {
  return request({
    method: 'get',
    url: '/sys/user/export',
    // 指明此次请求响应的是blob类型格式，默认是json格式
    responseType: 'blob'
  })
}

/**
 * 获取上传Excel模板
 */
export const getExcelTemplateAPI = () => {
  return request({
    method: 'get',
    url: '/sys/user/import/template',
    responseType: 'blob'
  })
}

/**
 * 新增批量员工(Excel上传)
 * @param {FormData} formData FormData对象
 */
export const postEmpBatchAPI = (formData) => {
  return request({
    method: 'post',
    url: '/sys/user/import',
    data: formData// 注意必须传入FormData类型
  })
}

/**
 * 删除员工
 * @param {number} id 员工id
 */
export const delEmpAPI = (id) => {
  return request({
    method: 'delete',
    url: `/sys/user/${id}`
  })
}

/**
 * 新增员工
 * @param {object} userInfo 员工表单
 */
export const postEmpAPI = (userInfo) => {
  return request({
    method: 'post',
    url: '/sys/user',
    data: userInfo
  })
}

/**
 * 获取员工详情
 * @param {number} id 员工id
 */
export const getEmpDetailAPI = (id) => {
  return request({
    method: 'get',
    url: `/sys/user/${id}`
  })
}

/**
 * 修改员工
 * @param {object} userInfo 员工表单
 */
export const putEmpAPI = (userInfo) => {
  return request({
    method: 'put',
    url: `/sys/user/${userInfo.id}`,
    data: userInfo
  })
}

/**
 * 员工分配角色
 * @param {number} id 员工id
 * @param {array} roleIds 角色id数组
 */
export const assignRoleAPI = (id, roleIds) => {
  return request({
    method: 'put',
    url: '/sys/user/assignRoles',
    data: {
      id,
      roleIds
    }
  })
}
